package com.dwy2002.room.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dwy2002.common.Result;
import com.dwy2002.pojo.po.rooms.Reservations;
import com.dwy2002.pojo.vo.rooms.RoomsVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/02/12
 */
public interface IReservationService extends IService<Reservations> {
    /**
     * 检测当前用户是否是重复预约该包间的时间
     *
     * @param id    包间id
     * @param dates 预约时间
     * @return true:数据库中有该用户预约的时间 false:没有
     * @author 杜伟毅
     * @since 2025/2/13 0013 0:17
     */
    boolean isUserDuplicateReserve(String id, List<LocalDateTime> dates);

    /**
     * 删除用户预约的包间
     *
     * @param id   包间id
     * @param date 预约日期
     * @return true：删除成功，false：删除失败
     * @author 杜伟毅
     * @since 2025/2/14 0014 21:47
     */
    boolean removeReservation(String id, LocalDateTime date);

    /**
     * 返回用户全部预约包间
     *
     * @author 杜伟毅
     * @since 2025/4/2 0002 0:24
     */
    Result<List<RoomsVO>> getBookedRooms();
}
